(レポート) CMP301: AWS Lambda and the Serverless Cloud #reinvent
AWS Lambdaの特徴
- 次のことを気にしなくて良い
- サーバー
- オーバー/アンダーキャパシティ
- デプロイ
- スケールや耐障害性
- OSや言語のアップデート
- 監視やロギング
- にもかかわらず、次のことが簡単にできる
- 自分の書いたコードを実行
- コードの並列実行
- バックエンドやイベントハンドラー、データ処理システムの作成
- 処理がされない時間帯は無課金
Lambdaの利点をまとめると
- サーバーレス
- スケールするイベントドリブン
- 課金単位が秒以下
Lambdaの動き
- 認証処理が実行され
- デプロイされ
- ステートレスにコードが実行され
- 実行内容の監視とロギングが行われる
Lambdaと連携しているAWSサービス
Lambdaの歩み
この機能、見逃してないよね?
SESインバウンドルール
SESで受診したメールをLambdaで処理できる。 次の例ではSESによってスパム判定された場合にログが記録されるようにしている。
※ SESでのメール受信については弊社記事も参照ください。 [新機能]Amazon SES でメール受信が出来るようになりました!
CloudWatch Logs連携
ログの内容に応じて任意の処理をほぼリアルタイムで実行することができる
Lambdaの新機能
Pythonサポート
Python2.7をサポート
- 全てのSDK
- AWS CLI
- AWSコンソール で利用可能。
さらに
- Lambdaで実行されるPythonはboto3を使える
- すでにドキュメントも揃ってる
- コンソールにはブループリントも用意した
Function実行時間の延長
これまで、最長60秒だった実行時間が最大300秒まで延長できるようになった
Functionのスケジュール実行
- 時間指定、もしくは実行間隔指定
- 標準的なcronの記法が使える
- 実行間隔の粒度は5分
- さらに細かい粒度でスケジュール実行したい場合はLambdaファンクション内でスケジューリング
- SQS等からのpollingができる!
- 現在のところ、スケジューリング設定できるのはAWSコンソールからだけ
- CLIやSDKのサポートは2015年の末ごろを予定
Functionのバージョニング
Functionがアップロードされるたびに自動で連番がふられる
Functionの呼び出し方法
(ファンクション名):(バージョン番号) という指定ができるようになった
- 最新のバージョンを呼び出す場合
- FunctionName
- FunctionName:$LATEST
- バージョンを指定して呼び出す場合
- FunctionName:1
- FunctionName:2
- 名前付きバージョンを呼び出す場合
- FunctionName:production
- FunctionName:v1_2_3_4
最後の呼び出し方から推測できる通り、バージョンにはエイリアスとして名前をつけることができる
IoTのバックエンドとして利用可能
新しく発表されたAWS IoTのバックエンドにLambdaが利用出来る
(予告)VPC対応
VPC内でLambda実行が可能になる
- 実行するVPCを選択
- サブネットグループとセキュリティグループを選択
- VPC内のプライベートなリソースにアクセス可能
- 今年の末に対応予定
感想
個人的に去年のre:Inventの目玉はAWS Lambdaだと思っているのですが、そのLambdaに欲しかった機能が全て実現された気がします。 開発者の地震と勢いを感じられるセッションでした。 使い倒しましょう。